/*
 * c_registro.h
 *
 *  Created on: 27 Apr 2010
 *      Author: osky
 */



#include "c_registro.h"
#include <stdio.h>

/* Constructor */

c_registro::c_registro ( int c_clave, unsigned int c_largodata, void* c_data)
        {
        clave = c_clave;
        largodata = c_largodata;
        data = c_data;
        }

c_registro::c_registro ()
        {
        clave = 0;
        largodata = 0;
        data = NULL;
        }


void c_registro::set_registro ( unsigned int s_clave, unsigned int s_largodata, void* s_data)
        {
        clave = s_clave;
        largodata = s_largodata;
        data = s_data;
        }

void c_registro::get_registro ( unsigned int &g_clave,  unsigned int &g_largodata, void* &g_data)
        {
        g_clave = clave;
        g_largodata = largodata;
        g_data = data;
        }

int c_registro::copiar (c_registro *reg_b)
    {
     clave=reg_b->clave;
     largodata=reg_b->largodata;
     data=reg_b->data;
    return 1;

    }


int c_registro::serializar( c_bloque* membuffer)
	{
	 int resultado=1;

	 resultado&=membuffer->add (clave);
	 resultado&=membuffer->add (largodata);
	 resultado&= membuffer->add (data,largodata);

	 return resultado;
	}


int c_registro::deserializar( c_bloque* membuffer)
	{
	 int resultado=1;

	 resultado&=membuffer->get (&clave);
	 resultado&=membuffer->get (&largodata);
	 resultado&=membuffer->get (&data,largodata);

	 return resultado;
	}

unsigned int c_registro::largo_reg ()
    { return sizeof(clave)+ sizeof (largodata) + largodata;
    }


unsigned int c_registro::get_clave()
    {
    return clave;
    }

char* c_registro::get_data()
    {
    return (char*) data;
    }

/*    int des_serializar_reg (FILE *handler) */

